package projeto.comercial.oportunidade.cih;

import java.util.ArrayList;
import java.util.List;

import nucleo.comuns.visao.NucleoTab;
import plataforma.base.cdp.ExcecaoRegraNegocio;
import plataforma.crudestatico.cih.FormularioDadosCRUDEstatico;
import projeto.administrativo.colaboradorexterno.cih.AbaContatos;
import projeto.administrativo.colaboradorexterno.cih.AbaInformacoes;
import projeto.comercial.oportunidade.cdp.OportunidadeServico;
import projeto.comercial.oportunidade.cdp.SituacaoOportunidade;

public class FormDadosOportunidade extends
		FormularioDadosCRUDEstatico<OportunidadeServico> {

	AbaOportunidadeDadosBasicos abaOportunidadeDadosBasicos;
	AbaInteracoes abaInteracoes;
	AbaInformacoes abaInformacoes;
	AbaContatos abaContatos;

	@Override
	protected List<NucleoTab> definirTabs() {

		List<NucleoTab> listaTabs = new ArrayList<NucleoTab>();
		abaOportunidadeDadosBasicos = new AbaOportunidadeDadosBasicos();
		abaInteracoes = new AbaInteracoes();
		abaContatos = new AbaContatos();
		abaInformacoes = new AbaInformacoes();

		listaTabs.add(abaOportunidadeDadosBasicos);
		listaTabs.add(abaInteracoes);
		listaTabs.add(abaContatos);
		listaTabs.add(abaInformacoes);

		return listaTabs;
	}

	@Override
	protected void preencherDadosTela(OportunidadeServico objeto)
			throws ExcecaoRegraNegocio {

		abaContatos.setContatos(objeto.getContatos());
		abaInformacoes.preencherComDados(objeto.getInformacoes());
		abaOportunidadeDadosBasicos.getCampoDescricao().setValue(
				objeto.getDescricao());
		
		abaInteracoes.preencherInteracoes(objeto.getInteracoes());
		abaOportunidadeDadosBasicos.setKServico(objeto.getkServico());
		if(objeto.getSituacao() != null)
		abaOportunidadeDadosBasicos.getCampoSituacao().setValorSelecionado(objeto.getSituacao());
	}

	@Override
	protected void preencherDadosObjeto(OportunidadeServico objeto) {

		objeto.setDescricao(abaOportunidadeDadosBasicos.getCampoDescricao()
				.getValue());
		objeto.setContatos(abaContatos.getContatos());
		objeto.setInformacoes(abaInformacoes.getInformacoes());
		objeto.setInteracoes(abaInteracoes.getInteracoes());

		objeto.setkServico(abaOportunidadeDadosBasicos.getKServico());
		
		objeto.setSituacao(abaOportunidadeDadosBasicos.getCampoSituacao().getValorSelecionado());
	}

	@Override
	public boolean isValid() {

		return abaOportunidadeDadosBasicos.isValid();
	}

}
